在Android中,生命週期指的是在運行時所經歷的不同階段和事件。每個生命週期的方法在特定的狀況下會被系統自動調用,這些情況通常與使用者的互動和系統事件有關。以下是Android應用程式的生命週期階段:
第一個階段,此時程式正在初始化,通常會在這個階段設置應用程式的基本結構,如佈局、宣告物件監聽、初始變數等等。這個階段只會在應用程式啟動時觸發一次。
此階段UI初始化,應用程式即將可見,但未處於活動狀態。在這個階段,可以執行一些輕量級的初始化工作,如設置UI元素。
這是應用程式的主要互動階段,用於執行與用戶互動相關的操作,像是監控使用者操作、動態更新UI等等。
當應用程式失去焦點,例如按下返回按鈕或切換到其他應用程式時。在這個階段應該執行一些清理工作,例如取消監聽、停止計時器。這些工作應盡量保持輕量級,因為需要在短時間內執行。
當應用程式被其他應用程式覆蓋或使用者返回主畫面時,在這個階段,應該要釋放不需要的資源。
onStop()是一個更靜止的狀態與onPause()不同,因此可以執行更耗時的操作。
發生在使用者主動關閉應用程式或系統回收資源時,在這個階段,應該釋放所有資源,並確保處於結束狀態。
在不同生命週期方法中使用Log於Android Activity中記錄生命週期狀態:
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(TAG, "onCreate");
}
@Override
protected void onStart() {
super.onStart();
Log.d(TAG, "onStart");
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "onResume");
}
@Override
protected void onPause() {
super.onPause();
Log.d(TAG, "onPause");
}
@Override
protected void onStop() {
super.onStop();
Log.d(TAG, "onStop");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy");
}
}
onCreatem、onStart與onResume階段在程式執行時會自動調用。
onPause、onStop可以利用按下返回按鈕調用。
onDestroy在主動關閉應用程式時調用。